
#region Using Statements

    using System;
    using System.Text;
    using System.Xml.Linq;
    using System.Collections.ObjectModel;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.Xna.Framework.Audio;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.GamerServices;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework.Input;
    using Microsoft.Xna.Framework.Media;
    using Microsoft.Xna.Framework.Net;
    using Microsoft.Xna.Framework.Storage;

#endregion

namespace HumanElement.Xna.Construct
{
    /// <summary>
    /// Surface : Interface describes 3D Textured Surfaces with there Pixel/Vertex
    /// </summary>
    public interface ISurface : IRenderable, IAsset
    {
        /// <summary>
        /// Gets a value indicating whether this instance is visible.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance is visible; otherwise, <c>false</c>.
        /// </value>
        bool IsVisible { get; }        
        
        /// <summary>
        /// Gets the pixel shader.
        /// </summary>
        /// <value>The pixel shader.</value>
        PixelShader PixelShader { get; }

        /// <summary>
        /// Gets the vertex shader.
        /// </summary>
        /// <value>The vertex shader.</value>
        VertexShader VertexShader { get; }        
    }
}
